package com.cy.easy;

import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelReader;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.read.metadata.ReadSheet;
import com.alibaba.excel.write.metadata.WriteSheet;
import org.junit.Test;

import java.io.File;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class EasyTest {

	String PATH = "F:\\work\\CODES\\easyexcel\\pio/";

	private List<DemoData> data() {
		List<DemoData> list = new ArrayList<DemoData>();
		for (int i = 0; i < 10; i++) {
			DemoData data = new DemoData();
			data.setString("字符串" + i);
			data.setDate(new Date());
			data.setDoubleData(0.56);
			list.add(data);
		}
		return list;
	}

	/**
	 * 最简单的写
	 * <p>1. 创建excel对应的实体对象 参照{@link DemoData}
	 * <p>2. 直接写即可
	 */
	@Test
	public void simpleWrite() {
		// 写法1
		String fileName = PATH + "EasyTest.xslx";
		// 这里 需要指定写用哪个class去写，然后写到第一个sheet，名字为模板 然后文件流会自动关闭
		// write(fileName,格式类)
		// sheet(表明)
		// doWrite(数据)
		EasyExcel.write(fileName, DemoData.class).sheet("模板").doWrite(data());
	}


	@Test
	public void simpleRead() {
		// 有个很重要的点 DemoDataListener 不能被spring管理，要每次读取excel都要new,然后里面用到spring可以构造方法传进去
		// 写法1：
		String fileName = PATH + "EasyTest.xslx";
		// 这里 需要指定读用哪个class去读，然后读取第一个sheet 文件流会自动关闭
		EasyExcel.read(fileName, DemoData.class, new DemoDataListener()).sheet().doRead();
	}



}